CPSE -\/ funkcja wykonująca skok jeśli wartość dwóch danych rejestrów jest sobie równa.

\hypertarget{pagecpse_sec_cpse1}{}\section{Wykonywane operacje}\label{pagecpse_sec_cpse1}
1. Identyfikacja numeru rejestru arg. 1: 
\begin{DoxyCodeInclude}
        uint8_t Rd=(getMEMC(getPC()) & 0x00F0) >> 4;                    //Identyf
      ikacja numeru rejestru arg. 1

\end{DoxyCodeInclude}
 2. Identyfikacja numeru rejestru arg. 2: 
\begin{DoxyCodeInclude}
        uint8_t Rr=(getMEMC(getPC()) & 0x000F);                         //Identyf
      ikacja numeru rejestru arg. 2

\end{DoxyCodeInclude}
 3. Pobranie zawartosci rejestru arg 1: 
\begin{DoxyCodeInclude}
        uint8_t Rd_val = getRegister(Rd) % MAX_DATA_VAL;                //Pobrani
      e zawartosci rejestru arg 1

\end{DoxyCodeInclude}
 4. Pobranie zawartosci rejestru arg 2: 
\begin{DoxyCodeInclude}
        uint8_t Rr_val = getRegister(Rr) % MAX_DATA_VAL;                //Pobrani
      e zawartosci rejestru arg 2

\end{DoxyCodeInclude}
 5.Sprawdzenie warunku równości, jeśli prawda do skok o ustalone k, jeśli fałsz to skok o 1: 
\begin{DoxyCodeInclude}
        if(Rd_val == Rr_val) incPC_k(1);
        else incPC();

\end{DoxyCodeInclude}
\hypertarget{pagecpse_sec_cpse2}{}\section{Kod źródłowy funkcji}\label{pagecpse_sec_cpse2}

\begin{DoxyCodeInclude}
/*
================================================================================
        Plik: f_cpse.c
--------------------------------------------------------------------------------
        Autorzy: Piotr Zdunek, Mateusz Słowikowski, Krzysztof Wiąckowski
        Projekt:Model mikrokontrolera AVR
        Kompilator: avr-gcc-4.3.5
        Doc: doxygen 1.7.4
--------------------------------------------------------------------------------
        Zawiera:
--------------------------------------------------------------------------------
        Komentarze:
================================================================================
*/

#include "types.h"
#include "mem_abs.h"

//**********************************************
//CPSE - funkcja wykonująca skok jeśli wartość dwóch danych rejestrów jest sobie 
      równa
//**************************************************

void F_CPSE(void){

        #if DEBUG_MODE
                printf("Function CPSE.");
        #endif
        uint8_t Rd=(getMEMC(getPC()) & 0x00F0) >> 4;                    //Identyf
      ikacja numeru rejestru arg. 1
        uint8_t Rr=(getMEMC(getPC()) & 0x000F);                         //Identyf
      ikacja numeru rejestru arg. 2
        uint8_t Rd_val = getRegister(Rd) % MAX_DATA_VAL;                //Pobrani
      e zawartosci rejestru arg 1
        uint8_t Rr_val = getRegister(Rr) % MAX_DATA_VAL;                //Pobrani
      e zawartosci rejestru arg 2

        #if DEBUG_MODE
                printf("Rd %d Rr %d\n",Rd_val,Rr_val);
                printf("PC = %d\n",getPC());
        #endif
//Sprawdzenie warunku równości
//jeśli prawda do skok o k
//jeśli fałsz to skok o 1
        if(Rd_val == Rr_val) incPC_k(1);
        else incPC();

        #if DEBUG_MODE
                printf("PC = %d\n",getPC());
        #endif
        //TODO - spr. incPC w CPSE
        //incPC();
}
\end{DoxyCodeInclude}
 